package com.yxkj.syh.app.huarong.util;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

import com.google.gson.Gson;
import com.syh.app.basic.App;
import com.yxkj.syh.app.huarong.bean.BuyerUser;

/**
 * 创建者：SYH
 * 时间：2020/5/25 10:19
 * 编辑者：SYH、
 * 标签：
 * 补充说明：
 */
public class UserManager {

    private static UserManager userManager;
    private BuyerUser user;

    private UserManager() {
    }

    public static UserManager getUserManager() {
        if (userManager == null) {
            userManager = new UserManager();
        }
        return userManager;
    }

    private SharedPreferences getSP() {
        return App.getApplication().getSharedPreferences("buyerUserConfig", Context.MODE_PRIVATE);
    }

    /**
     * 保存登录获取的票据
     */
    public void saveToken(String token) {
        getSP().edit().putString("token", token).apply();
    }

    /**
     * 获取保存的cas登录获取的票据
     */
    public String getSavedToken() {
        return getSP().getString("token", "");
    }

    /**
     * 保存用户
     *
     * @param user
     */
    public void saveUser(BuyerUser user) {
        this.user = user;
        String userJson = new Gson().toJson(user);//暂时不做加密处理
        getSP().edit().putString("buyerUser", userJson).apply();
    }

    /**
     * 获取用户
     */
    public BuyerUser getUser() {
        return this.user;
    }


    /**
     * 清空
     */
    public void clear() {
        user = null;
        getSP().edit().clear().apply();
    }

    /**
     * 初始化用户  尽早调用  可以在app启动界面调用
     */
    public void initUser() {
        if (user == null) {
            String userJson = getSP().getString("buyerUser", "");
            if (!TextUtils.isEmpty(userJson)) {
                BuyerUser user = new Gson().fromJson(userJson, BuyerUser.class);
                this.user = user;
            }
        }
    }

    public boolean isSetedAlias() {
        return getSP().getBoolean("alias", false);
    }

    public void setedAlias() {
        getSP().edit().putBoolean("alias", true).apply();
    }

}
